namespace FanG
{
    using System;
    using System.ComponentModel;
    using System.Drawing;

    [TypeConverter(typeof(ExpandableObjectConverter))]
    public class ShadowAttributes
    {
        private byte _Alpha;
        private float _Angle;
        private System.Drawing.Color _Color;
        private int _Distance;
        private bool _Enable;
        private bool _Hollow;
        private int _Radius;

        public ShadowAttributes()
        {
            this._Enable = true;
            this._Radius = 3;
            this._Alpha = 0xc0;
            this._Angle = 60f;
            this._Color = System.Drawing.Color.Black;
        }

        public ShadowAttributes(bool Enable, int Radius, int Distance, byte Angle)
        {
            this._Enable = true;
            this._Radius = 3;
            this._Alpha = 0xc0;
            this._Angle = 60f;
            this._Color = System.Drawing.Color.Black;
            this.Enable = Enable;
            this.Radius = Radius;
            this.Distance = Distance;
            this.Angle = Angle;
        }

        public ShadowAttributes(bool Enable, int Radius, int Distance, byte Angle, bool Hollow, System.Drawing.Color Color)
        {
            this._Enable = true;
            this._Radius = 3;
            this._Alpha = 0xc0;
            this._Angle = 60f;
            this._Color = System.Drawing.Color.Black;
            this.Enable = Enable;
            this.Radius = Radius;
            this.Distance = Distance;
            this.Angle = Angle;
            this.Hollow = Hollow;
            this.Color = Color;
        }

        [Description("Shadow Distance\n阴影距离"), Category("Chartlet")]
        public byte Alpha
        {
            get
            {
                return this._Alpha;
            }
            set
            {
                this._Alpha = value;
            }
        }

        [Category("Chartlet"), Description("Shadow Distance\n阴影距离")]
        public float Angle
        {
            get
            {
                return this._Angle;
            }
            set
            {
                this._Angle = value;
            }
        }

        [Category("Chartlet"), Description("Shadow Distance\n阴影距离")]
        public System.Drawing.Color Color
        {
            get
            {
                return this._Color;
            }
            set
            {
                this._Color = value;
            }
        }

        [Category("Chartlet"), Description("Shadow Distance\n阴影距离")]
        public int Distance
        {
            get
            {
                return this._Distance;
            }
            set
            {
                this._Distance = value;
            }
        }

        [Category("Chartlet"), Description("Enable shadow of chart elements\n是否给图表元素加上投影效果")]
        public bool Enable
        {
            get
            {
                return this._Enable;
            }
            set
            {
                this._Enable = value;
            }
        }

        [Category("Chartlet"), Description("Enable Hollow Shadow(Only drop shadow of the eage)\n是否使用中空的投影，只投影图形的边框")]
        public bool Hollow
        {
            get
            {
                return this._Hollow;
            }
            set
            {
                this._Hollow = value;
            }
        }

        [Description("Radius of shadow\n阴影半径"), Category("Chartlet")]
        public int Radius
        {
            get
            {
                return this._Radius;
            }
            set
            {
                this._Radius = value;
            }
        }
    }
}

